在 WPF 裡,Binding 讓 UI 與資料能自動同步,但有時候我們還需要:
UI 狀態改變 → 樣式跟著變(例如滑鼠移上去變色)
資料值改變 → 樣式跟著變(例如股價大於 1000 就紅色)
事件觸發 → 做出動畫或其他效果
這些需求,可以透過 Trigger (觸發器) 來完成。
Trigger 的三種類型
當控制項的某個 屬性 改變時,自動套用樣式。
範例:滑鼠移上按鈕改變背景色
效果:
滑鼠移到按鈕上,背景會變成淺綠色。
滑鼠移開,恢復原本樣式。
根據 Binding 值 判斷條件,改變樣式。
範例:股價超過 1000 就顯示紅色
效果:
當 Price = 1000 → 文字變紅色
其他情況維持預設
小提醒:如果要做「大於 1000」的情境,需要用 DataTrigger + Converter,因為 DataTrigger 的 Value 只能比對單一值。
當某個事件發生時,觸發 Storyboard / 動畫。
範例:按下按鈕時閃爍背景
效果:
按下按鈕時,背景會閃爍黃色兩次。
綜合範例:股票漲跌顯示
假設我們有一個股票清單,要顯示不同顏色:
股價 ≥ 1000 → 紅色
股價 < 1000 → 綠色
小結
今天我們學會了 Trigger 的三種類型:
Property Trigger:根據控制項屬性(如 IsMouseOver)改變樣式
Data Trigger:根據 Binding 的資料值改變樣式
Event Trigger:根據事件觸發動畫或其他效果
Trigger 讓 WPF 的 UI 更加動態與直覺,能有效減少程式碼中的 if/else 與事件處理。